import Vue from 'vue'
import App from './App.vue'
import router from './router'
import axios from 'axios'
// 全局引入自定义样式表
import './assets/reset.css'
// 在工程中引入 ElementUI
import ElementUI from 'element-ui'
// 样式文件需要单独引入
import 'element-ui/lib/theme-chalk/index.css'
// 全局引入ElementUI
Vue.use(ElementUI)
// 全局配置axios框架
axios.defaults.baseURL = 'http://127.0.0.1:18082'
// AUTH_TOKEN 权限校验的令牌
axios.defaults.headers.common.Authorization = 'AUTH_TOKEN'
// 定义axios提交数据的方法，同时对服务器端的接收方法也产生影响
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf8'
// 5秒
axios.defaults.headers.timeout = 5000
axios.defaults.headers.withCredentials = true // 默认的 ，支持Cookie
// 添加请求拦截器,实现为每次请求之前为request进行配置
axios.interceptors.request.use(function(config) {
  // 在发送请求之前自动的为所有的request对象添加令牌
  config.headers.Authorization = window.sessionStorage.getItem('token')
  //   在发送请求之前自动的为所有的request对象添加角色ID
  config.headers.roleid = window.sessionStorage.getItem('roleid')
  return config
}, function(error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})
// 添加响应拦截器
axios.interceptors.response.use(function(response) {
  // 对响应数据做点什么
  return response
}, function(error) {
  // 对响应错误做点什么
  return Promise.reject(error)
})
Vue.config.productionTip = false
Vue.prototype.$axios = axios
// 模拟登录保存数据
sessionStorage.setItem('roleid', '2')
sessionStorage.setItem('token', 'abc')
sessionStorage.setItem('employee', JSON.stringify({
  empno: 7369,
  ename: 'Neusoft'
}))
new Vue({
  router,
  render: (h) => h(App)
}).$mount('#app')
